<?php namespace app\service\controller;
use think\Controller;

/**
 * 缓存服务层
 */
class Cache{
	
	
	private $cacheArr = [
		'phoneCode' 			=> 'phoneCode_',			//手机号验证码
		'wechatMinAccessToken' 	=> 'wechatMinAccessToken_',	//微信小程序accessToken
		'userToken'				=>	'userToken',			//所有登录token(缓存键名：userToken，所有登录token的缓存数组，user_ + 用户ID为子数组键名，如：userToken = ['user_123'=>[token等具体数据]])
		'adminToken'			=>	'adminToken',			//后台用户登录token，规则同userToken
		'wechatAccessTokenwx0b2ec4e132565344'	=>	'wechatAccessTokenwx0b2ec4e132565344',			//商城小程序accessToken
		'wechatAccessTokenwxbab3a4cc43f7f744'	=>	'wechatAccessTokenwxbab3a4cc43f7f744',			//代理商小程序accessToken
		'nameLoginCode'			=>	'nameLoginCode_',			//pc登录验证码
	];
	
	/**
	 * 设置缓存
	 * @param	string				$cacheType		缓存类型（$cacheArr的键名）
	 * @param	string				$cacheName		具体的缓存名称（如用户ID123）
	 * @param	string|int|arr		$cacheValue		缓存值
	 * @param	intval				$cacheTime		缓存有效期
	 */
	public function setCache($cacheType, $cacheName, $cacheValue, $cacheTime = 0){
		return cache($this -> cacheArr[$cacheType] . $cacheName, $cacheValue, $cacheTime);
	}
	
	/**
	 * 清空缓存
	 * @param	string				$cacheType		缓存类型（$cacheArr的键名）
	 * @param	string				$cacheName		具体的缓存名称（如用户ID123）
	 */
	public function delCache($cacheType, $cacheName = ''){
		return cache($this -> cacheArr[$cacheType] . $cacheName, null);
	}
	
	/**
	 * 读取缓存
	 * @param	string				$cacheType		缓存类型（$cacheArr的键名）
	 * @param	string				$cacheName		具体的缓存名称（如用户ID123）
	 */
	public function getCache($cacheType, $cacheName = ''){
		return cache($this -> cacheArr[$cacheType] . $cacheName);
	}
	
}
